class EntrySettingController {
    constructor($rootScope, $scope, $cookieStore, $timeout, $state, EntryService, ngDialog, dialogService, iRunner, getCourseList){

    	var vm = this;

    	vm.$rootScope    = $rootScope;
    	vm.$cookieStore  = $cookieStore;
    	vm.$timeout 	 = $timeout;
    	vm.$state   	 = $state;
    	vm.ngDialog 	 = ngDialog;
    	vm.dialogService = dialogService;
    	vm.iRunner 	     = iRunner;
        vm.EntryService = EntryService;

        //科目list
        vm.getCourseList = getCourseList;

        //获取设置详情
        vm.EntryService.getEntryDetail(vm.$cookieStore.get('access_token'), vm.$state.params.race_id)
        .then(function(data) {
            console.log(data);

            // 成功调用
            if (data.code==0) {

                //报名费用
                vm.pay_info_obj = data.data.pay_info;
                
                vm.pay_info = [
                    // {
                    //     course_id: '369',
                    //     course_name: "选手信息导入",
                    //     money: 12
                    // }
                ];
                if (vm.pay_info_obj) {
                    angular.forEach(vm.getCourseList.data, function(data,index,array){

                        vm.pay_info.push(
                            {
                                course_id: data.course_id,
                                course_name: data.course_name,
                                money: parseFloat(vm.pay_info_obj[data.course_id]),
                                num: data.reg_num
                            }
                        )
                    });
                } else {
                    angular.forEach(vm.getCourseList.data, function(data,index,array){

                        vm.pay_info.push(
                            {
                                course_id: data.course_id,
                                course_name: data.course_name,
                                money: ''
                            }
                        )
                    });
                }

                //是否需要审核
                vm.need_verify = data.data.need_verify == 'yes' ? true : false;

                //是否需要邮件通知
                vm.notify_email = data.data.notify_email == 'yes' ? true : false;
                
                //是否需要短信通知
                vm.notify_sms = data.data.notify_sms == 'yes' ? true : false;

                //报名开始时间
                vm.start_time = moment(data.data.start_time)._d;

                //报名结束时间
                vm.end_time = moment(data.data.end_time)._d;

                //免责声明
                vm.reg_info = data.data.reg_info ? data.data.reg_info : '';
                
                //报名页面提示信息
                vm.disclaimer = data.data.disclaimer ? data.data.disclaimer : '';

                // 取消报名
                vm.cancel_reg = data.data.cancel_reg == 'yes' ? true : false;
                // 取消报名时间
                vm.cancel_reg_time = moment(data.data.cancel_reg_time)._d;
                // //初始化自定义颜色
                // $("#colorbg").val("FFFFFF");
                // $("#colorbtn").val("04BE02");
                // // 生成颜色改变控件
                // vm.colorbg = new jscolor(document.getElementById("colorbg"));
                // vm.colorbtn = new jscolor(document.getElementById("colorbtn"));

            } else{
                console.log("调用失败");
            }
            // 登录信息已过期, 请重新登录
            data.code==-1001&&vm.dialogService.error(data.message, true);
            console.log(data)
        }, function(data) {
            console.log('error')
        });


        /**
         * [emaiLsampleShow 查看邮件模板]
         * @return {[type]} [description]
         */
        vm.emailSampleShow = function() {
            vm.dialogService.error("<img src='images/email_sample.jpg' style='width: 100%'>");
        }
    }



    // 表单提交
    submitForm(isValid) {
        var vm = this;
        //验证失败的场合
        if (!isValid) {
            vm.dialogService.error("请填写必要信息再提交");
        } else {

                var checkFlag = true;

                // 报名费用（科目）
                var pay_info_obj = {};
                angular.forEach(vm.pay_info, function(data,index,array){

                    if (data.money < 0) {
                        vm.dialogService.error("报名费用不能为负数！");
                        checkFlag = false;
                    }

                    pay_info_obj[data.course_id] = data.money.toString(); 

                });

                var params = {
                    pay_info: JSON.stringify(pay_info_obj),
                    need_verify: vm.need_verify ? 'yes' : 'no',
                    notify_email: vm.notify_email ? 'yes' : 'no',
                    notify_sms: vm.notify_sms ? 'yes' : 'no',
                    start_time: moment(vm.start_time).format('YYYY-MM-DD') + ' ' + moment(vm.start_time).format('HH:mm:ss'),
                    end_time: moment(vm.end_time).format('YYYY-MM-DD') + ' ' + moment(vm.end_time).format('HH:mm:ss'),
                    reg_info: vm.reg_info,
                    disclaimer: vm.disclaimer,
                    cancel_reg: vm.cancel_reg ? 'yes' : 'no',
                    cancel_reg_time: moment(vm.cancel_reg_time).format('YYYY-MM-DD') + ' ' + moment(vm.cancel_reg_time).format('HH:mm:ss'),
                }

                // 报名开始时间不能大于报名结束时间
                if (params.start_time >= params.end_time) {
                    vm.dialogService.error("报名结束时间要大于报名开始时间");
                    checkFlag = false;
                }

                if (vm.cancel_reg && !vm.cancel_reg_time) {
                    vm.dialogService.error("请填写报名截止时间");
                    checkFlag = false;
                }

                if (!checkFlag) {
                    return false
                }

                vm.EntryService.postEntryDetailUpdate(params, vm.$cookieStore.get('access_token'), vm.$state.params.race_id)
                .then(function(data) {

                    // 成功调用
                    if (data.code==0) {
                        vm.dialogService.success("保存成功");
                    }

                    // 调用失败, 提示用户
                    (data.code!=0&&data.code!=-1001)&&vm.dialogService.error(data.message);

                    // 登录信息已过期, 请重新登录
                    data.code==-1001&&vm.dialogService.error(data.message, true);

                    console.log(data)
                }, function(data) {
                    console.log('error')
                });
        }
    }
}

EntrySettingController.$inject = ['$rootScope', '$scope', '$cookieStore', '$timeout', '$state', 'EntryService', 'ngDialog', 'dialogService', 'iRunner', 'getCourseList']; 

export default EntrySettingController;